package ar.unsam.tp.programa

import ar.unsam.tp.tipo.Tipo
import ar.unsam.tp.infraccion.Infraccion
import ar.unsam.tp.infraccion.InfraccionNula
import ar.unsam.tp.interfaces.Suscriptor
import java.util.ArrayList
import java.util.List

class Jugador implements Suscriptor {
	@Property String nombre
	@Property Tipo tipoDeInscripcion
	@Property Infraccion infraccion
	@Property int edad
	public List<Calificacion> calificaciones = new ArrayList<Calificacion>
	
	override enviarMensaje(String msg) {
		System::out.println("(Enviado a " + this.nombre + ")" + msg)
	}

	new() {
		this.infraccion = new InfraccionNula()
	}

	new(String nom) {
		nombre = nom
		this.infraccion = new InfraccionNula()
	}
	
	def Calificacion crearCalificacion(int puntos, String nota){
		return new Calificacion(puntos, nota, this)
	}
	
	def void penaliza() {
		infraccion.penalizar
	}

	override String toString() {
		nombre + ": " + tipoDeInscripcion.toString
	}
}
